Packet classification generally involves classifying one or more attributes associated with one or more related packets (e.g., flows). Conventional packet classifiers utilize expensive memory resources. For example, a conventional packet classifier may utilize content-addressable memory (CAM) or ternary CAM (TCAM) which is a special type of computer memory usable to search for associated data using a search value (or key value). In this example, using CAM, the packet classifier may search a table of stored data using packet header information associated with a given packet as the key value and identify a relevant memory address containing information about the packet or flow. After identifying a relevant memory address, the packet classifier may read memory content associated with the memory address and perform one or more classification actions.
While CAM is extremely fast compared to other types of memory, CAM is expensive, has greater physical dimensions, and generally has a higher power consumption rate than other types of memory. For example, comparison circuitry may be needed for each memory location in a CAM chip, thereby increasing the physical size of the CAM chip which increases manufacturing cost. Moreover, the additional comparison circuitry results in increased power consumption. Because of the shortcomings associated with CAM, conventional packet classifiers have limited amounts of CAM and, therefore, are restricted in the number of packets that can be monitored and/or classified.
Accordingly, in light of these difficulties, a need exists for improved methods, systems, and computer readable media for packet classification.